package net.wang.concurrency.test.singleton;


import net.wang.concurrency.annoations.NotThreadSafe;

/**
 * 单例模式——懒汉模式  实例实在第一次使用时创建
 * 单线程下是安全的
 */
@NotThreadSafe
public class SingletonExample1 {

    private SingletonExample1() {

    }

    private static SingletonExample1 instance = null;

    /**
     * 单线程下是安全的
     *
     * @return
     */
    public static SingletonExample1 getInstance() {
        if (instance == null) {  //2个线程会同时执行到判断语句
            return new SingletonExample1();
        }
        return instance;
    }
}
